﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using BombermanExcepciones;

namespace Bomberman
{
	[Serializable]
	public abstract class Enemigo : Personaje
	{
		protected ControladorMovimiento controlador;

		protected ControladorMovimiento Controlador 
		{ 
			get{return controlador;}
		}

		public Enemigo(int vida, int velocidad, string nombre = "Enemigo") : base(vida, velocidad, nombre)
		{
			this.nombre = nombre;
			velocidadDisparo = 250;
		}

		public void Mover()
		{
			if (SePuedeMover() == false) return;

			Casillero proximoCasillero;
			try
			{
				proximoCasillero = this.Controlador.obtenerDestino(this.Posicion());
			}
			catch (NoHayCaminoTerrestreException)
			{
				return;
			}
			
			(this.Posicion()).QuitarContenido(this);

			this.Posicionar(proximoCasillero);
		}

		public virtual void Atacar()
		{ 
		
		}

	}
}
